<?php
class ClistDirs{ 
public static $g_arrfiles=array();
public function __construct(){}
public function __destruct() {}

//作用：文件变成目录
//@parm 1 string $path ,例如 __FILE__
//return string 目录
public static function fileToDirname($path){
    $path = preg_replace('/\/{1,}/', '/', str_replace ('\\','/',  $path .'/'));
	    if( is_file($path) ){
		    return dirname($path);	
		} 
		return $path;
}	
public static function setFilesEmpty(){
    ClistDirs::$g_arrfiles = array();
}

//作用：将$dirname目录下所有的文件（包括字目录）转换成可识别的网站地址。
//并压入数组 $outArray 和 静态变量$g_arrfiles
//@parm 1 String $dirname 目录名
//@parm 2 Array  $outArray __out 网站地址组成的数组
//返回值 ：无
public static function listDir ($dirname ,&$outArray='empty' )   
{   
    if(!is_array($outArray)){
    $outArray = array();
    }
    
    $dirname = self::fileToDirname($dirname);
   
    $Ld = dir($dirname);   

    while (false !== ($entry = $Ld->read())) {   
        $checkdir=$dirname."/".$entry;   
        
		//是目录则继续扫描文件
		if (is_dir($checkdir)&&!preg_match("[^\.]",$entry)){   
         
           self::listDir($checkdir, $outArray)  ;  
        }else{   
		
		//不是目录则继续向文件数组内 push 文件名
			if(!preg_match("[^\.]",$entry)){
				 if(
				preg_match  (
			"/(\.mp4)$/",$entry  )
			&& (    !preg_match("/del(\.mp4)$/",$entry)  )
				 ){ 
                        
					$src=  Cserver::file2url($dirname.$entry);
				    self::$g_arrfiles[]= $src ;//iconv('GBK//IGNORE','UTF-8//IGNORE',$src);
					$outArray[]= $src;
				  } 
			}
         }   
    }   
    $Ld->close();   
   // echo "</ul>";   
}
 


}



if(!class_exists('Cserver')){
class Cserver{	
    public static function getDomain($http='http'){
        if(80==$_SERVER['SERVER_PORT']||8080==$_SERVER['SERVER_PORT']){
            $server_port_str='';
        }else{
            $server_port_str=':'.$_SERVER['SERVER_PORT'];
        }
        return $http.'://'.$_SERVER['SERVER_NAME'].$server_port_str.'/';
    }
	
	//格式化左斜杠
    public static function changeFilenameSlashs ($file=""){   
        return preg_replace('/\/{1,}/', '/', str_replace ('\\','/',  $file ));
    }
	
	//作用：文件目录的形式转换成网站地址的形式 例如：O:/Appserv/www/a.html -> http://localhost:91/a.html
	//@parm1  $__file__ 完整的文件名
	//返回值 String 网址地址
    public static function file2url( $__file__){
        $_DOCUMENT_ROOT= self::changeFilenameSlashs( $_SERVER['DOCUMENT_ROOT'] ).'/';
		$__file__      = self::changeFilenameSlashs( $__file__ ) ;
        return str_replace($_DOCUMENT_ROOT,self::getDomain(), $__file__) ;    
   }   	
}
}
//echo Cserver::file2url(__FILE__);


//$listdirs = new ClistDirs();
//$listdirs -> listDir(dirname(__FILE__)."/../../../__Vide/");
//print_r(ClistDirs::$g_arrfiles);

?>